package models;

import java.awt.Point;
import java.util.ArrayList;
import java.util.List;

import sprites.ActorSprite;
import sprites.Sprite;

public interface MainWindowStateInterface {
	
	public boolean					containsSprite(Sprite S);
	public boolean					containsActor(ActorSprite A);
	
	public List<Sprite>				getAllSprites();
	public List<ActorSprite>		getAllActors();

	public	void					setSelectedSprite(Sprite S);
	public	void					setSelectedActor(ActorSprite A);
	public	void					setCurrentTurn(ActorSprite A);

	public	ActorSprite				getCurrentTurn();
	public	ActorSprite				getSelectedActor();
	public	Sprite					getSelectedSprite();

	public	void					addSprite(Sprite S);
	public	void					removeSprite(Sprite S);
	public	void					insertSprite(Sprite S, int turn);
	
	public	void					sortActors();
	
	public	int						indexOf(ActorSprite A);
	public	ArrayList<ActorSprite>	getActorsUnderPoint(Point P);
	public	ArrayList<Sprite>		getSpritesUnderPoint(Point P);			
	
	public	void					fromXml(String xml);
	public	String					toXml();
}
